OMRDetectOvalMarks(Int32,Rectangle[],Int32) Method
In This Topic
Returns whether a selected OMR (Optical Mark Recognition) field/s is filled or not. This method is
mainly used for Oval shaped Fields. An OMR field can be a checkbox, a fill-in-area checkbox, areas on
a multiple choice examination form, or any area where highlighting is required to indicate a certain
choice.
Syntax
'Declaration
Public Overloads Function OMRDetectOvalMarks( _
ByVal As Integer, _
ByVal () As Rectangle, _
ByVal As Integer _
) As Integer()
public int[] OMRDetectOvalMarks(
int ,
Rectangle[] ,
int
)
public function OMRDetectOvalMarks(
: Integer;
: Rectanglearray of;
: Integer
): array of Integer;
public function OMRDetectOvalMarks(
: int,
: Rectangle[],
: int
) : int[];
public: int[]* OMRDetectOvalMarks(
int ,
Rectangle[]* ,
int
)
public:
array<int>^ OMRDetectOvalMarks(
int ,
array<Rectangle>^ ,
int
)
Parameters
- ImageID
- GdPicture image identifier.
- Areas
- Array of Rectangle. This parameter is used as a reference to the location
of the OMR Fields. Where each Rectangle in the Areas, corresponds to a
rectangle surrounding a single OMR field. For example, if 10 Rectangles
exist in Areas, there will be 10 OMR Fields to be investigated whether they
were checked (filled) or not.
- AreasCount
- Number of Rectangles sent to the method. Basically, the length of
Areas().
Return Value
The method returns an Array of integers.
If the value of an element is 0, then the field was not filled. If the value of an element is 1, then
the field was filled.
The Elements of the returned array will correspond to the Elements of the Rectangles Array Areas().
Where if the first element of the returned array[0] is 0, then the OMR field surrounded by the
rectangle in the element of Areas[0] was not filled. Similarly, if the first element of the returned
array[5] is 1, then the OMR field surrounded by the rectangle in the element of Areas[5] was filled.
Example
Testing whether a selected OMR (Optical Mark Recognition) field/s is filled or not within a tiff.
using (GdPictureImaging gdpictureImaging = new GdPictureImaging())
{
int imageID = gdpictureImaging.CreateGdPictureImageFromFile("image.tif", false);
// Specifying rectangles for OMR.
const int markCount = 3;
Rectangle[] areas = new Rectangle[markCount];
// Each mark uses a quadruplet for its location (left, top, width, height).
areas[0] = new Rectangle(850, 1580, 30, 30); // First area left, top, width, height.
areas[1] = new Rectangle(850, 1620, 30, 30); // Second area left, top, width, height.
areas[2] = new Rectangle(850, 1660, 30, 30); // Third area left, top, width, height.
int[] filled = gdpictureImaging.OMRDetectOvalMarks(imageID, areas, markCount);
StringBuilder result = new StringBuilder();
for (int index = 0; index < markCount; index++)
{
result.AppendLine("Index:" + index.ToString());
result.AppendLine("Left:" + areas[index].X.ToString());
result.AppendLine("Top:" + areas[index].Y.ToString());
result.AppendLine("Width:" + areas[index].Width.ToString());
result.AppendLine("Height:" + areas[index].Height.ToString());
result.AppendLine("Filled:" + filled[index].ToString());
result.AppendLine();
}
MessageBox.Show(result.ToString(), "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
gdpictureImaging.ReleaseGdPictureImage(imageID);
}
Example
Testing whether a selected OMR (Optical Mark Recognition) field/s is filled or not within a tiff.
using (GdPictureImaging gdpictureImaging = new GdPictureImaging())
{
int imageID = gdpictureImaging.CreateGdPictureImageFromFile("image.tif", false);
// Specifying rectangles for OMR.
const int markCount = 3;
Rectangle[] areas = new Rectangle[markCount];
// Each mark uses a quadruplet for its location (left, top, width, height).
areas[0] = new Rectangle(850, 1580, 30, 30); // First area left, top, width, height.
areas[1] = new Rectangle(850, 1620, 30, 30); // Second area left, top, width, height.
areas[2] = new Rectangle(850, 1660, 30, 30); // Third area left, top, width, height.
int[] filled = gdpictureImaging.OMRDetectOvalMarks(imageID, areas, markCount);
StringBuilder result = new StringBuilder();
for (int index = 0; index < markCount; index++)
{
result.AppendLine("Index:" + index.ToString());
result.AppendLine("Left:" + areas[index].X.ToString());
result.AppendLine("Top:" + areas[index].Y.ToString());
result.AppendLine("Width:" + areas[index].Width.ToString());
result.AppendLine("Height:" + areas[index].Height.ToString());
result.AppendLine("Filled:" + filled[index].ToString());
result.AppendLine();
}
MessageBox.Show(result.ToString(), "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
gdpictureImaging.ReleaseGdPictureImage(imageID);
}
See Also